import type {LoginResult} from '@/types/member';
import {defineStore} from 'pinia';
import {ref} from 'vue';

// 定义 Store
export const useMemberStore = defineStore(
    'member',
    () => {
        // 会员信息
        const profile = ref<LoginResult>();

        // 保存会员信息，登录时使用
        const setProfile = (val: LoginResult) => {
            profile.value = val
        }

        // 清理会员信息，退出时使用
        const clearProfile = () => {
            profile.value = undefined
        }

        // 记得 return
        return {
            profile,
            setProfile,
            clearProfile,
        }
    },
    // 持久化配置.
    {
        // 网页端配置
        // persist: true,
        // 小程序端配置
        persist: {
            // 调整为兼容多端的API
            storage: {
                getItem(key) {
                    return uni.getStorageSync(key)
                },
                setItem(key, value) {
                    uni.setStorageSync(key, value)
                },
            },
        },
    },
)
